
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>

  <body>
    <div id="div">max</div>
    <div id="div2">min</div>
    <script>
      var maxProfit = function (prices) {
        // 以第一个元素为基准值，找到比它大的和比它小的，记录下来
        let max = {
          idx:0,
          val: prices[0]
        };
        let min = {
          idx:0,
          val: prices[0]
        };
        for(let k = 1; k<prices.length; k++){
          if(max.idx >= min.idx && prices[k]>= max.val){ // 找到大的啦。
            max.idx = k;
            max.val = prices[k];
          }else if(prices[k]<= min.val){
            min.idx = k;
            min.val = prices[k];
          }
        }

        if(max.idx > min.idx){
          return max.val - min.val
        }
        return 0;
      };

      console.log(maxProfit([7,1,5,3,6,4]));
      // var reverseList = function (head) {
      //   if (!Array.isArray(head)) return [];
      //   let stack = [];
      //   for(let k = head.length-1; k >= 0; k--){
      //     stack.push(head[k]);
      //   }
      //   return stack;
      // };

      // var reverseList = function (head) {
      //   if (!Array.isArray(head)) return [];
      //   const length = head.length - 1;
      //   for (let k = length; k >= 1; k--) {
      //     const top = head.shift();
      //     head.push(top)
      //   }
      //   return head;
      // };

      // var reversePrint = function (head) {
      //   let i = 0;
      //   const length = head.length-1;
      //   function dfs(head, length) {
      //     if(i >=length)return head;
      //     const top = head.pop();
      //     head.splice(i,0,top);
      //     i++;
      //     return dfs(head, length)
      //   }
      //   return dfs(head, length)
      // };

      // var trap = function (height) {
      //   let ans = 0;
      //   const stack = []; //单调递减栈。存放的是下标哦
      //   const n = height.length;
      //   for (let i = 0; i < n; ++i) {
      //     //循环heights
      //     //当前柱子的高度大于stack栈顶 不断出栈
      //     while (stack.length && height[i] > height[stack[stack.length - 1]]) {
      //       const top = stack.pop();
      //       //栈为空时 跳出循环
      //       if (!stack.length)  break;

      //       const left = stack[stack.length - 1]; //拿到当前位置左边比当前柱子矮的位置
      //       const currWidth = i - left - 1; //计算宽度(1是自身宽度)
      //       const currHeight = Math.min(height[left], height[i]) - height[top]; //计算高度:min(当前栈顶，当前项 - 当前项左侧)
      //       ans += currWidth * currHeight; //计算当面积
      //     }
      //     stack.push(i); //加入栈
      //   }
      //   return ans;
      // };
      // console.log(trap([2,0,2]));
      // console.log(trap([4, 2, 0, 3, 2, 5]));

      // var simplifyPath = function (path) {
      //   let queue = [];
      //   const pathTolist = path.split("/");
      //   for (const s of pathTolist) {
      //     if (s === "..") {
      //       if (queue.length !== 0) queue.pop();
      //     } else if (s != "" && !(s == "."))  queue.push(s);
      //   }
      //   return "/" + queue.join("/");
      // };

      // console.log(simplifyPath("/home/"));
      // var isPalindrome = function (head) {
      //   let l = 0;
      //   let r = head.length -1 ;
      //   for (let k = 0; k <= head.length; k++) {
      //     if(head[l] === head[r]){
      //       l++;
      //       r--;
      //     }else{
      //       return false;
      //     }
      //     if(l >= r) break;
      //   }

      //   if(l >= r) return true;
      //   else return false;
      // };

      //  function generateParenthesis(n) {
      //     let result = [];
      //     let str = "";
      //     backtrack(result, str, 0, 0, n);

      //     function backtrack(strArr, cur, left, right, n) {
      //       if (cur.length === 2 * n) {
      //         strArr.push(cur);
      //         return cur;
      //       }

      //       if (left < n) {
      //         cur += "(";
      //         cur = backtrack(strArr, cur, left + 1, right, n);
      //         cur = cur.slice(0, cur.length - 1);
      //       }

      //       if (right < left) {
      //         cur += ")";
      //         cur = backtrack(strArr, cur, left, right + 1, n);
      //         cur = cur.slice(0, cur.length - 1);
      //       }
      //       return cur;
      //     }

      //     return result;
      //   }
      //   debugger
      //   const a = generateParenthesis(2)
      //   console.log(a);
    </script>
  </body>
</html>
